package ms.unicorn.dsl;

import ms.unicorn.Element;

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.gef.EditPartFactory;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.notation.View;

public interface IEditHelperAdviceEx extends IEditHelperAdvice, EditPartFactory {
	
	public ICommand getCreationCommand(ILanguageElement element, CreateElementRequest req);

	public View createView(ILanguageElement element,
			IAdaptable semanticAdapter, View containerView,
			String semanticHint, int index, boolean persisted,
			PreferencesHint preferencesHint);

	public IParser createParser(View model, Element obj, ILanguageElement le);
	
	/*View createView(LanguageElement element, IAdaptable semanticAdapter,
			View containerView, String semanticHint, int index,
			boolean persisted, PreferencesHint preferencesHint);

	EditPolicy createPrimaryDragEditPolicy(Element element, EditPart editPart);

	FigureContainer createFigure(LanguageElement element, Element domainObj, EditPart editpart);

	IParser getParser(ViewDef definition, Element obj, LanguageElement le);

	void createDefaultEditPolicies(LanguageElement lang, Element element, EditPart editart);
*/
}
